// 对axios进行二次封装
import axios from "axios";
// 引入进度条
import nProgress from "nprogress";
// 引入样式
import "nprogress/nprogress.css"
// 引入仓库
import store from '@/store'
// 引入element-ui
import { Message } from "element-ui";

// 利用axios的方法创建一个request对象
const requests = axios.create(
    {
        baseURL: "/user",
        timeout: 5000
    }
)

// 请求拦截器
requests.interceptors.request.use((config) => {
    if(store.state.user.token){
        config.headers.token = store.state.user.token;
    }
    nProgress.start();
    return config;
});

// 响应拦截器
requests.interceptors.response.use((res)=>{
    nProgress.done();
    // 如果token过期后端会传520的code
    if(res.data.code == 520){
        store.dispatch("user/userLogout");
        window.location.reload();
    }
    return res.data;
},(error)=>{
    return Promise.reject(new Error("faile"))
})
// 对外暴露

export default requests;